﻿
using System.Collections.Generic;
using System.Data;
using System;
using ZHDJ.WebPage;

namespace ZHDJ.MobileInterface
{
    public partial class CommentPartyPhotoPic : AbstractBasePage
    {
        protected override OutParam BusinessProcess<InParam, OutParam>(InParam inParam)
        {
            // 业务逻辑返回的响应对象  
            CommentPartyPhotoPicOutParam result = new CommentPartyPhotoPicOutParam();
            CommentPartyPhotoPicInParam param = new CommentPartyPhotoPicInParam();
            string logMsg = "";
            bool isFlag = true;
                 
            try
            { 
                param = inParam as CommentPartyPhotoPicInParam;
                if (string.IsNullOrEmpty(param.user_id) || string.IsNullOrEmpty(param.wall_id) || string.IsNullOrEmpty(param.content))
                {
                    result.code = "0";
                    result.desc = "用户ID，留影墙ID,评论内容不能为空";

                    isFlag = false;
                }

                if(isFlag)
                {
                    //用户是否存在
                    isFlag = InterfaceHelper.CheckLoginIDCountEx(param.user_id);

                    if (!isFlag)
                    {
                        result.code = "0";
                        result.desc = "该用户不存在"; 
                    }



                    if (CommonUtils.IsDisableUsers(param.user_id))
                    {
                        result.code = "0";
                        result.desc = "用户状态有问题，请联系管理员";

                        isFlag = false;
                    }
                }  

                if (isFlag)
                {
                    isFlag = InterfaceHelper.CheckPartyPhotoPicEx(param.wall_id);
                    if (!isFlag)
                    {
                        result.code = "0";
                        result.desc = "待评论的留影墙不存在";

                        isFlag = false;
                    }
                }

                //测试代码-----------------------------------------
                //CommentPhoto ttt = new CommentPhoto();
                //ttt.img = "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";
                //ttt.name = "lllll.jpg";
                //param.photos.list.Add(ttt);
                //测试代码-----------------------------------------

                  
                string fileID = "";
                if (isFlag)
                {
                    if (param.photos != null && param.photos.list != null && param.photos.list.Count > 0)
                    { 
                        UpFileResult upResult = UpFileBusiness.Upload(Convert.FromBase64String(param.photos.list[0].img), param.photos.list[0].name, param.user_id, "");

                        if (upResult.IsSuccess && !string.IsNullOrEmpty(upResult.FileID))
                            fileID = upResult.FileID;

                        for (int i = 0; i < param.photos.list.Count; i++)
                            param.photos.list[i].img = "";

                    }
                }

                if (isFlag)
                {
                    //保存数据
                    InterfaceHelper.InsertPartyDatabaseComment(param.wall_id, param.user_id, param.content, fileID, param.picAddr);
                }

                logMsg = result.desc;
            }
            catch (Exception ex)
            {
                result.code = "0";
                result.desc = "操作异常，多次出现请联系管理员"; 
                logMsg = ex.Message + ":" + ex.StackTrace;
            }
             
            CommonUtils.InsertMobileInterfaceLog(SystemCode +"-CommentPartyPhotoPic", SerializeHelper.JsonSerializer<CommentPartyPhotoPicInParam>(param), logMsg); 
            return result as OutParam;
        }

        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (string.Compare(Request.QueryString["Safe"], "False", true) == 0)
                ProcessRequest<CommentPartyPhotoPicInParam, CommentPartyPhotoPicOutParam>();
            else
                SafeProcessRequest<CommentPartyPhotoPicInParam, CommentPartyPhotoPicOutParam>();
        }
    }

    #region 请求参数
    public class CommentPartyPhotoPicInParam
    {
        public CommentPartyPhotoPicInParam()
        {
            photos = new CommentPhotoList();
        }

        /// <summary>
        ///	用户名	
        /// </summary>
        public string user_id
        { get; set; }  
    
        /// <summary>
        ///	留影墙ID
        /// </summary>
        public string wall_id
        { get; set; }  
    
        /// <summary>
        ///	评论内容
        /// </summary>
        public string content
        { get; set; }

        /// <summary>
        /// 评论图片列表
        /// </summary>
        public CommentPhotoList photos
        {
            get;
            set;
        }

        /// <summary>
        ///	图片地点
        /// </summary>
        public string picAddr
        { get; set; }
    }

    public class CommentPhotoList
    {
        public CommentPhotoList()
        {
            list = new List<CommentPhoto>();
        }
        public List<CommentPhoto> list
        {
            get;
            set;
        }
    }

    public class CommentPhoto
    {
        /// <summary>
        ///	评论图片内容		
        /// </summary>
        public string img
        { get; set; }

        /// <summary>
        /// 评论图片名称	
        /// </summary>
        public string name
        { get; set; } 
    }
    #endregion

    #region 结果参数
    public class CommentPartyPhotoPicOutParam
    {
        public CommentPartyPhotoPicOutParam()
        {
            code = "1";
            desc = "操作成功"; 
        }

        /// <summary>
        /// 返回结果 具体见接口返回对照码 1	成功 0	失败 2	请求非法 加密结果和传入的MD5字符串进行比较，如果相同则执行接口操作，否则返回1001错误响应码
        /// </summary>
        public string code
        { get; set; }

        /// <summary>
        /// 结果描述 成功和失败都需要
        /// </summary>
        public string desc
        { get; set; } 
    }
    #endregion 
}